#include "VentanaEntradaIpYPuerto.h"
#include "Cliente.h"
#include <fstream>

#define     NUM_CAMPO_IP        0
#define     NUM_CAMPO_PUERTO    1

VentanaEntradaIpYPuerto::VentanaEntradaIpYPuerto(TP::Juego::Jugador* jugador) {
	_jugador = jugador;
	_ventanaMensaje = NULL;
	_ventanaMenuMultijugador = NULL;
	std::string labelIp = "Ip";
	std::string labelPuerto = "Puerto";

	set_position(Gtk::WIN_POS_CENTER);
	set_size_request(300, 110);
	set_resizable(false);
	set_title("Ingrese datos del servidor");
	AddCampo(labelIp);
	AddCampo(labelPuerto);
	Show();
}

void VentanaEntradaIpYPuerto::on_button_clicked() {
	std::string ip = GetValorCampo(0);
	std::string puerto = GetValorCampo(1);
	_log = new std::ofstream("./logs/errlog");

	Cliente* cliente = new Cliente(_jugador, ip, puerto, *_log);

	try {
		cliente->Iniciar();
	}
	catch (Excepcion& pEx) {
		std::string mensaje = pEx.what();
		*_log << mensaje << endl;

		if (_ventanaMensaje) delete _ventanaMensaje;
		_ventanaMensaje = new VentanaMensaje(mensaje, this);
	}

	// Abrir ventana de seleccion/creacion de partidas
	if (_ventanaMenuMultijugador) delete _ventanaMenuMultijugador;
	_ventanaMenuMultijugador = new VentanaMenuMultijugador(cliente);
	hide();
}

VentanaEntradaIpYPuerto::~VentanaEntradaIpYPuerto() { }
